package com.songjia.springboot.web.controller;

import java.util.Date;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * RestController是Spring 4.0推出的新特性, 
 * 使用其标注表示当前类为一个@Controller,
 * 并且使用@RequestMapping所标注的方法的返回值默认会被认为使用 了@ResponseBody进行标注，
 * 因此不再使用视图解析的方式进行处理，而是将内容通过HTTP响应体返回给客户端。
 * 
 * @RestController相当于同时加了@Controller和@ResponseBody注解
 */
@RestController
public class HelloController {
	
	
	/**
     * spring boot会自动读取application.properties,
     * 并且将其作为系统参数进行注入,用户也可以在启动应用的时候
     * 通过-Dname=xxx来手动注入，手动注入会覆盖配置文件中的参数,
     * 如果没有指定值，那么name的默认值就是World。
     */
	@Value("${name:songman}")
	private String name;
	
	@Value("${age:27}")
	private Integer age;
	
	@Value("${name:songjia}")
	private String husband;
	
	/**
	 * 由于使用了@RestControlelr,因此无需在使用@ResponseBody来标注返回的结果
	 * @return
	 */
	@RequestMapping("/hello")
	public String sayHello() {
		return String.format("hello:%s", name);
	}
	
	@RequestMapping("/")
    public String home() {
        return "Hello World!";
    }
	
	@RequestMapping("/now")
    public String hehe() {
        return "现在时间：" + (new Date()).toLocaleString();
    }
}
